import { UI_Layer, UI_Listen } from '../../config/ui_def';
cc.Class({
    extends: cc.Component,

    properties: {
        mask_node:cc.Node,      // 遮罩节点
        load_node:cc.Node,      // 加载动画节点
        ani_ing:false,          // 正在播放动画
        wait_close:false,       // 等待直接关闭

        count_time:0,           // 等待时间
        over_time:0,            // 最低等待时间
    },
    initPage(){},
    listenClient(code,param,arg){
        if(code){
            switch(code){
                case UI_Listen.CLOSE_LOAD_COVER:
                    this.closeAni()
                break
            }
        }
    },
    // 打开界面等待关闭加载
    updatePage(param){
        // 动画时常设置
        if(param.time){
            this.close_time = param.time
        }else{
            this.close_time = 1
        }
        this.node.active = true
        this.count_time = 0
        this.over_time = 0
        if(param.in){
            // 进入页面 遮罩渐入 就是全变黑了
            this.mask_node.setContentSize(cc.size(2000,2000))
            if(this.tween){
                this.tween.stop()
                this.tween = null 
            }
            this.switchLoadingAni(false)
            this.tween = cc.tween(this.mask_node).to(this.close_time, {height:0,width:0})
            .call(this.toScene.bind(this,param.scene))
            .start();
            this.ani_ing = true
        }else{
            // 退出页面 遮罩一直存在 由监听关闭
            this.mask_node.setContentSize(cc.size(0,0))
            this.switchLoadingAni(true)
        }
        gg.eventManager.on('loadcover',this.listenClient,this)
    },
    // 切换场景
    toScene(scene){
        this.ani_ing = false
        if(gg.uiManager.lastScene == scene){
            switch(scene){
                case "Playground":
                    gg.uiManager.delPage(UI_Layer.Pop,'GameOverPage')
                    gg.data.gameRestart()
                    // 重启游戏
                break
            }
            if(this.wait_close){
                this.wait_close = false
                this.closeAni()
            }
            return
        }
        this.switchLoadingAni(true)
        cc.director.loadScene(scene);
    },
    closeAni(){
        if(this.ani_ing){
            this.wait_close = true
            return
        }
        this.switchLoadingAni(false)
        // 一手动画 模型关闭
        this.ani_ing = true
        if(this.tween){
            this.tween.stop()
            this.tween = null 
        }
        this.over_time = this.close_time
        this.tween = cc.tween(this.mask_node)
        .to(this.close_time, {height:2000,width:2000})
        .start();
    },
    closeUI(){
        this.wait_close = false
        this.ani_ing = false
        this.over_time = 0
        gg.eventManager.off('loadcover',this.listenClient,this)
        if(this.tween){
            this.tween.stop()
            this.tween = null 
        }
    },

    // 加载动画
    switchLoadingAni(status){
        // 动画
        this.load_node.active = status

    },
    update(dt){
        if(this.over_time > 0){
            this.count_time += dt
            if(this.count_time > this.over_time){
                this.uiBase.closePage()
            }
        }
    } 
});
